home *** CD-ROM | disk | FTP | other *** search
- /* Skript zur Abrechnung der Telefonkosten mit OhWeh! */
-
- options results
-
- if (~show(l,'rexxsupport.library')) then
- addlib('rexxsupport.library',0,-30,0)
-
- address command 'c:run c:ohweh!'
- address command 'sys:rexxc/waitforport' 'OHWEH.1'
-
- temp = 'sys:t/tk.temp'
- recent = 'amitcp:bin/telefonkosten'
- insgesamt = 'amitcp:bin/inetkosten'
-
- /* Nachsehen, ob noch ein Tempfile vorhanden ist */
-
- if exists(temp) then do
- call open(in,temp,r)
- zeile = readln(in)
- close(in)
- parse value zeile with datum' | 'zeit' | 'kosten
- login = format(datum,kosten,zeit)
-
- /* Speichern in der Datei seit letztem Anruf */
- call open(out,recent,a)
- writeln(out,login)
- close(out)
-
- /* Speichern in der Gesamtabrechnung */
- call open(out,insgesamt,a)
- writeln(out,login)
- close(out)
-
- delete(temp)
- end
- /* Datum laden und zwischenspeichern */
-
- datum = date()
-
-
- /* Endlosschleife solange OHWeh! läuft. Daten abfragen und
- zwischenspeichern */
-
- do until ~show(P,'OHWEH.1')
- ergeb = abfrage()
- parse value ergeb with kosten' 'zeit
- call zwspeichern(kosten,zeit)
- address command 'c:wait' 5
- end
-
- /* Wenn OhWeh! beendet wurde, dann auslesen der Daten in tk.temp und
- speichern in der recent Datei */
-
- call open(in,temp,r)
- zeile = readln(in)
- close(in)
-
- parse value zeile with datum' | 'zeit' | 'kosten
- daten = format(datum,kosten,zeit)
-
- /* Speichern in der Datei seit letzter Abrechnung */
-
- call open(out,recent,a)
- writeln(out,daten)
- close(out)
-
- /* Speichern in der Gesamtliste */
-
- call open(out,insgesamt,a)
- writeln(out,daten)
- close(out)
-
-
- /* Löschen des Tempfiles. Wenn dieses noch da ist, dann ist der Rechner in
- der Zwischenzeit abgestürtzt */
-
- delete(temp)
-
- exit
-
-
-
- /* Abfragen der Zeit und des Preises */
-
- abfrage: procedure
- address OHWEH.1
-
- GETVALUE TIME
- zeit = result
-
- GETVALUE NEWPRICE
- kosten = result
- ergebnis = kosten zeit
- return(ergebnis)
-
- /* Abspeichern der Daten */
-
- zwspeichern:
- parse arg kosten,zeit
- address rexx
- call open(out,temp,w)
- auszeile = datum' | 'zeit' | 'kosten
- writeln(out,auszeile)
- close(out)
- return
-
- /* Formatieren der erhaltenen Daten */
-
- format: procedure
- parse arg datum,kosten,zeit
- /* Formatierung der Kosten */
-
- kosten = kosten/100
- parse value kosten with dm'.'pf
- if pf < 10 then pf = pf||0
- kosten = dm'.'pf
-
- /* Formatierung der Zeit */
- if datatype(zeit) = 'NUM' then do
- stunden = zeit%3600
- if stunden < 10 then stunden = 0||stunden
- rest = zeit//3600
-
- minuten = rest%60
- if minuten < 10 then minuten = 0||minuten
- sekunden = rest//60
- if sekunden < 10 then sekunden = 0||sekunden
-
- online = stunden':'minuten':'sekunden
- end
- login = datum' 'online' 'kosten 'DM'
- return(login)
-
-